home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / simula / compiler / cim / sun4del2.lha / cim.h < prev    next >
C/C++ Source or Header  |  1992-12-26  |  17KB  |  840 lines

  1. /****************************************************************************\
  2. *                                                                            *
  3. $Id: cim.h,v 1.3 1992/09/14 11:33:18 cim Exp $
  4. *                                                                            *
  5. *****************************************************************************/
  6.  
  7. /******************************************************************************
  8.                                              Definition of runtime-constants */
  9.  
  10. #define __REALASDOUBLE 1
  11.  
  12. #ifndef __FILES
  13. #define __FILES int *
  14. #endif
  15.  
  16. #define __FALSE 0
  17. #define __TRUE 1
  18. #define __NULL 0L
  19. #define __EOF (-1)
  20.  
  21. /* Executing must have the value 0 since it is not set */
  22. #define __EXECUTING 0
  23. #define __DETACHED 1
  24. #define __TERMINATED 2
  25. #define __RESUMED 3
  26. #define __CONSTANT 1
  27.  
  28. #define __ACTS 1
  29. #define __TEXT 3
  30. #define __ARRAY 5
  31. #define __THUNK 7
  32.  
  33. #define __FROM_START 0
  34. #define __CURRENT_POS 1
  35. #define __AT_END 2
  36.  
  37. #define __VALUE_THUNK 0
  38. #define __VALUE_NOTHUNK 1
  39. #define __ADDRESS_THUNK 2
  40. #define __ADDRESS_NOTHUNK 3
  41.  
  42. #define __NOTEST 0
  43. #define __WRITETEST 1
  44. #define __READTEST 2
  45. #define __READWRITETEST 3
  46.  
  47. #define __NOCONV 0
  48. #define __INTREAL 1
  49. #define __REALINT 2
  50. #define __REALINTREAL 3
  51.  
  52. #define __RTPUTTEXTLENGTH 150
  53. #define __RTPUTTEXTFORMATLENGTH 10
  54. #define __RTPUTMAXN 100
  55.  
  56. /* Definition of kind */
  57. #define __KNOKD   'N'
  58. #define __KSIMPLE 'S'
  59. #define __KARRAY  'A'
  60. #define __KPROC   'P'
  61. #define __KCLASS  'C'
  62. #define __KBLOKK  'B'
  63. #define __KPRBLK  'R'
  64. #define __KFOR    'F'
  65. #define __KINSP   'I'
  66. #define __KCON    'O'
  67. #define __KERROR  'E'
  68.  
  69. /* Definition of type */
  70. #define __TNOTY   'N'
  71. #define __TINTG   'I'
  72. #define __TSHORT  'I'     /* S */
  73. #define __TREAL   'R'
  74. #define __TLONG   'R'     /* D */
  75. #define __TBOOL   'B'
  76. #define __TCHAR   'C'
  77. #define __TLABEL  'L'
  78. #define __TTEXT   'T'
  79. #define __TREF    'P'
  80. #define __TERROR  'E'
  81.  
  82. #define __NOSHARED  0
  83. #define __SHARED    1
  84.  
  85. #define __NOAPPEND  0
  86. #define __APPEND    1
  87.  
  88. #define __NOCREATE  0
  89. #define __CREATE    1
  90. #define __ANYCREATE 2
  91.  
  92. #define __READWRITE 0
  93. #define __WRITEONLY 1
  94. #define __READONLY  2
  95.  
  96. #define __NOREWIND  0
  97. #define __REWIND    1
  98.  
  99. #define __NOPURGE   0
  100. #define __PURGE     1
  101.  
  102. #define __READ 0
  103. #define __WRITE 1
  104. #define __SEEK 2
  105.  
  106. #define __BYTESIZE 8
  107.  
  108. /******************************************************************************
  109.                                      Structures, unions and type definitions */
  110.  
  111. typedef union 
  112. {
  113.    long i;
  114.    char c;
  115. #ifdef __REALASDOUBLE
  116.    double f;
  117. #else
  118.    float f;
  119. #endif
  120.    short s;
  121.    long l;
  122.    double d;
  123. } __valuetype;
  124.  
  125. typedef struct
  126. {
  127.   void (*ment)();
  128.   short ent;
  129. }__progadr;
  130.  
  131. /* A prototype-object */
  132.  
  133. typedef struct __ptys __ptyp,*__pty;
  134. struct __ptys
  135.     {
  136.         char  kind,plev;
  137.         short blev,size;
  138.         short ent;
  139.         short fornest,connest;
  140.         short naref,navirt;
  141.         short *ref;
  142.         __pty   *virt;
  143.         __pty  *pref;
  144.         void (*ment)();
  145.         __progadr *virtlab;
  146.     };
  147.  
  148.  
  149. /* Head of a data-object */
  150.  
  151. typedef struct __dhs *__dhp;
  152. typedef struct __dhs
  153.   {
  154.     __pty pp;
  155.     __dhp gl,dl;
  156.     short ex;
  157.     char pm,dt;
  158.     __dhp sl;
  159.     void (*mex)();/* mex = exit til modul mex */
  160.   } __dh;
  161.  
  162. /* Var parameter of type boolean, char, or text */
  163. typedef struct
  164. {
  165.   __dhp bp;  /* Pointer to block to akt.par. */
  166.   int ofs;   /* Relativ adress of akt.par   */
  167. } __varpar;
  168.  
  169. /* Aritmetic var parameter */
  170. typedef struct
  171. {
  172.   __dhp bp;  /* Pointer to block to akt.par. */
  173.   int ofs;   /* Relativ adress of akt.par   */
  174.   char conv; /* What kind of converting (integer, real) */
  175. } __aritvarpar;
  176.  
  177. /* Ref var parameter */
  178. typedef struct
  179. {
  180.   __dhp bp;   /* Pointer to block to akt.par. */
  181.   int ofs;    /* Relativ adress of akt.par   */
  182.   __pty q;    /* Pointer to prototype to strongest
  183.           /* qualification  on the access path */
  184.   char conv;  /* When in test must be done */
  185. } __refvarpar;
  186.  
  187.  
  188. /* Formal prosedure parameter */
  189. typedef struct
  190. {
  191.   __pty pp;
  192.   __dhp psl;
  193. } __forprocpar;
  194.  
  195. typedef struct
  196. {
  197.   __pty pp;
  198.   __dhp psl;
  199.   char conv;
  200. } __aritprocpar;
  201.  
  202. typedef struct
  203. {
  204.   __pty pp;
  205.   __dhp psl;
  206.   char conv;
  207.   __pty q;
  208. } __refprocpar;
  209.  
  210. typedef union 
  211. {
  212.    __valuetype v;
  213.    __dhp r;
  214. } __val_or_ref;
  215.  
  216. /* Head of a stack-object */
  217. typedef struct
  218.   {
  219.     __pty pp;
  220.     __dhp gl,dl;
  221.     short ex;
  222.     char pm,dt,at; /* pm="ant ref", at="ant text", and dt="ant value" */
  223.     short size;
  224.   } __sh,*__shp;
  225.  
  226. /* A stack-object */
  227. typedef struct
  228.   {
  229.     __sh h;
  230.     __val_or_ref s[1];
  231.   } __stk,*__stkp;
  232.  
  233. /* Head of a tekst-object */
  234. typedef struct
  235. {
  236.  
  237.    __pty pp;
  238.    __dhp gl;
  239.    char konstant;
  240.    short size;
  241. } __th,*__thp;
  242.  
  243. /* Tekst-object */
  244. typedef struct
  245. {
  246.   __th h;
  247.   char string[1];
  248. }  __tobj,*__textref;
  249.  
  250. /* Tekst-variable */
  251. typedef struct
  252. {
  253.     __textref obj;
  254.     unsigned short length,pos,start;
  255. } __txt, *__txtvp;
  256.  
  257. /* Notext */
  258. typedef struct
  259. {
  260.   __txt tvar;
  261. } __notext;
  262.  
  263. /* Head of an array-object */
  264. typedef struct 
  265. {
  266.    __pty pp;
  267.    __dhp gl;
  268.    int size;
  269.    short dim;
  270.    char type;
  271. } __ah,*__ahp;
  272.  
  273. /* Upper and lower limit for each dimension */
  274. typedef struct
  275. {
  276.    int low,size;
  277. } __arrlimit;
  278.  
  279. /* Head of an array-object */
  280. typedef struct
  281. {
  282.    __ah h;
  283.    __arrlimit limits[1];
  284. } *__arrp;
  285.  
  286. /* Name transmission */
  287. typedef struct 
  288. {
  289.   void (*ment)();
  290.   short ent;
  291. } __thunkorprogadr;
  292.  
  293. typedef struct
  294. {
  295.   void (*ment)();
  296.   short ent;
  297. } __thunkadr;
  298.  
  299. typedef union
  300. {
  301.   int ofs;        /* Offset adress for a variable, bp is base adress   */
  302.   int i;          /* Valuie for a constant aktual name par */
  303. #ifdef __REALASDOUBLE
  304.   double f;
  305. #else
  306.   float f;
  307. #endif
  308.   char c;
  309.   short s;
  310.   long l;
  311.   double d;
  312.   __dhp r;
  313. } __ofsorvalue;
  314.  
  315. typedef struct
  316. {
  317.   __dh h;
  318.   char conv;     /* What kind of conversions have to be performed       */
  319.   __pty q;       /* Strongest qualification on the access path.           */
  320.   char ftype;    /* Formal type of an aritmetick name.                     */
  321.   char writeaccess;/* TRUE or FALSE. For thunks that is computing adresses.*/
  322.                  /* Should the thunk return the adress or an value.        */
  323. }  __thunk,*__thunkp;
  324.  
  325. typedef struct
  326. {
  327.    __dhp sl;
  328.    __thunkadr adr;
  329.    __dhp bp;
  330.    __ofsorvalue v;
  331.    char namekind;
  332. } __simplenamepar;
  333.  
  334. typedef struct
  335. {
  336.    __simplenamepar h;
  337. } __charboolnamepar;
  338.  
  339. typedef struct
  340. {
  341.    __simplenamepar h;
  342.    char conv;
  343. } __aritnamepar;
  344.  
  345. typedef struct
  346. {
  347.    __simplenamepar h;
  348.    __pty q;
  349.    char conv;
  350. } __refnamepar;
  351.  
  352. typedef struct
  353. {
  354.    __simplenamepar h;
  355.    __txtvp tp;
  356. } __textnamepar;
  357.  
  358. typedef struct
  359. {
  360.    __dhp sl;
  361.    __thunkadr adr;
  362.    __pty pp;                    /* Pointer to the procedures prototype    */
  363.    __dhp psl;                   /* Procedures static environment          */
  364.    char namekind;
  365. } __procname;
  366.  
  367. typedef struct
  368. {
  369.    __procname h;
  370. } __simpleprocnamepar;
  371.  
  372. typedef struct
  373. {
  374.    __procname h;
  375.    char conv;
  376. } __aritprocnamepar;
  377.  
  378. typedef struct
  379. {
  380.   __procname h;
  381.    char conv;
  382.   __pty q;
  383. } __refprocnamepar;
  384.  
  385. typedef struct
  386. {
  387.    __dhp sl;
  388.    __thunkorprogadr adr;
  389.    __dhp ob;
  390.    int swv;
  391.    char namekind;
  392. } __labelnamepar;
  393.  
  394. /* Label var and standard transmitted parameter or */
  395. /* a name, var or standard transmitted switch parameter */
  396. typedef struct   /* No thunk for switch parameter by name */
  397. {
  398.    __progadr adr;
  399.    __dhp ob;
  400. } __labelswitchpar;
  401.  
  402. typedef struct
  403. {
  404.    __dhp sl;
  405.    __thunkadr adr;
  406.    __arrp ap;
  407.    char namekind;
  408. } __arraynamepar;
  409.  
  410. typedef struct
  411. {
  412.   char *fil;
  413.   long line,fromline;
  414. } __map;
  415.  
  416. /******************************************************************************
  417.                                                           External variables */
  418.  
  419. /* Inline error messages */
  420. extern char *__errnone, *__errlim, *__errarr, *__errswitch, 
  421.             *__errqual, *__errvirt, *__errbound;
  422.  
  423. /* Program counter */
  424. extern int __lgoto;
  425. extern void (*__mgoto)();
  426. extern void __main_modul();
  427. extern void (*__modul)();
  428. extern int __lreturn;
  429. extern void (*__mreturn)();
  430. extern long __vreturn;
  431.  
  432. /* switch */
  433. extern int __swv;
  434.  
  435. /* Local-block, parameter-block, and static environm,ent to rcp(p)() */
  436. extern __dhp __lb,__pb;
  437. extern __dhp __sl; /* Can't be a parameter since GBC must update it */
  438.  
  439. /* Garbage collections statistics */
  440. extern int __gc; 
  441. extern double __gbctime;
  442.  
  443. /* Return value */
  444. extern long __ev;
  445. #ifdef __REALASDOUBLE
  446. extern double __ef;
  447. #else
  448. extern float __ef;
  449. #endif
  450. extern char __ec;
  451. extern __dhp __er;
  452. extern __txt __et;
  453.  
  454. /* Stack for evaluation of expressions */
  455.                                                 /* 900526 (1)   */
  456. extern __valuetype  __v[];
  457. extern __dhp __r[];
  458. extern __txt __t[];
  459.  
  460. extern long __as; /* Antall p} h.h.v ref og text stakken */
  461.  
  462. /* Pointer to current array-object */
  463. extern __arrp __ap;
  464.  
  465. /* (indeks - lower bound) for the actual dimensions to an array object */
  466. extern int __h[];
  467.  
  468. extern __pty __pp;         /* Prototyp pointer */
  469. extern __dhp __bp;         /* In test */
  470. extern __refvarpar *__vrp; /* In test for var par */
  471. extern __aritvarpar *__vvp;/* Convertion between real and integer */
  472. extern __refnamepar *__nrp; /* In test for name par */
  473. extern __aritnamepar *__nvp;/* Convertion between real and integer for name */
  474. extern char __conv;
  475. extern char __currentlowten,
  476.             __currentdecimalmark;
  477.  
  478. extern __notext __tk0;  /* tk0 == notext */
  479. extern char __ctab[3][4];
  480.  
  481. extern long __poolsize,__maxsize;
  482. extern char __dynsize,__chpoolsize;
  483.  
  484. extern char *__ctext;
  485.  
  486. extern char *__nullstr;
  487.  
  488. extern char *__progname;
  489. extern long __argc;
  490. extern long __argv;
  491. extern long __rargc();
  492. extern long __rargv();
  493.  
  494. extern __map *__curent_map;
  495.  
  496. extern long __line;
  497.  
  498. extern long __lines_per_page;
  499.  
  500. extern __dhp __sto,__max,__min,__fri;
  501. extern __dh __niu,__nil;
  502.  
  503. extern __dhp __p;
  504.  
  505. /******************************************************************************
  506.                                                          Outermost block and
  507.                              the file classes    */
  508.  
  509. /* Outermost block */
  510. typedef struct
  511. {
  512.   __dh h;
  513.   __dhp c1,c2;
  514. } __bs0FILE,__bs0;
  515. extern __bs0FILE __blokk0;
  516. extern __bs0FILE *__bp0FILE;
  517. extern short __rl0FILE[];
  518. extern __pty __pl0FILE[];
  519. extern __ptyp __p0FILE;
  520.  
  521. /* Class file */
  522. typedef struct
  523. {
  524.   __dh h;
  525.   __txt filename;
  526.   __FILES *file;
  527.   char open;
  528.   char shared,append,create,readwrite,re_wind,purge;
  529. } __bs1FILE,__bs1;
  530. extern __pty __pl1FILE[];
  531. extern __ptyp __p1FILE;
  532.  
  533. /* File class imagefile */
  534. typedef struct
  535. {
  536.   __bs1FILE s;
  537.   __txt IMAGE;
  538. } __bs2FILE,__bs2;
  539. extern __bs2FILE *__bp2FILE;
  540. extern short __rl2FILE[];
  541. extern __pty __pl2FILE[];
  542. extern __ptyp __p2FILE;
  543.  
  544. /* Imagefile class outfile */
  545. typedef struct
  546. {
  547.   __bs2FILE s;
  548.  } __bs3FILE,__bs3;
  549. extern __pty __pl3FILE[];
  550. extern __ptyp __p3FILE;
  551.  
  552. /* Imagefile class infile */
  553. typedef struct
  554. {
  555.   __bs2FILE s;
  556.   char endfile;
  557. } __bs4FILE,__bs4;
  558. extern __pty __pl4FILE[];
  559. extern __ptyp __p4FILE;
  560. extern __bs4FILE __sysin;
  561.  
  562. /* Imagefile class directfile */
  563. typedef struct
  564. {
  565.   __bs2FILE s;
  566.   long loc,maxloc,minwriteloc,imagelength;
  567.   char endfile,locked,lastop,writeonly;
  568. } __bs5FILE,__bs5;
  569. extern __pty __pl5FILE[];
  570. extern __ptyp __p5FILE;
  571.  
  572. /* Outfile class printfile */
  573. typedef struct
  574. {
  575.   __bs3FILE s;
  576.   long line,lines_per_page,spacing,page;
  577. } __bs6FILE,__bs6;
  578. extern __pty __pl6FILE[];
  579. extern __ptyp __p6FILE;
  580. extern __bs6FILE __sysout;
  581. extern __bs6FILE __syserr;
  582.  
  583. /* File class bytefile  */
  584. typedef struct
  585. {
  586.   __bs1FILE s;
  587.   char endfile,bytesize;
  588. } __bs7FILE,__bs7;
  589. extern __pty __pl7FILE[];
  590. extern __ptyp __p7FILE;
  591.  
  592. /* Bytefile class inbytefile */
  593. typedef struct
  594. {
  595.   __bs7FILE s;
  596.   char endfile;
  597. }  __bs8FILE,__bs8;
  598. extern __pty __pl8FILE[];
  599. extern __ptyp __p8FILE;
  600.  
  601. /* Bytefile class outbytefile */
  602. typedef struct
  603. {
  604.   __bs7FILE s;
  605. } __bs9FILE,__bs9;
  606. extern __pty __pl9FILE[];
  607. extern __ptyp __p9FILE;
  608.  
  609. /* Bytefile class directbytefile */
  610. typedef struct
  611. {
  612.   __bs7FILE s;
  613.   long loc,maxloc,minwriteloc;
  614.   char locked,lastop,writeonly;
  615. } __bs10FILE,__bs10;
  616. extern __pty __pl10FILE[];
  617. extern __ptyp __p10FILE;
  618.  
  619. /******************************************************************************
  620.                                                          External declaration
  621.                              of run-time routines
  622.                              that do not return 
  623.                              int                 */
  624.  
  625.  /* RTCK.C */
  626.  extern __dhp __rca();
  627.  extern __dhp __ralloc();
  628.  extern char __rin();
  629.  extern char __rrin();
  630.  extern char __ris();
  631.  extern char __rgetav();
  632.  extern char __rgetcbv();
  633.  extern char __rgetrv();
  634.  extern char __rgettv();
  635.  extern char __rgetproc();
  636.  extern char __rgetlab();
  637.  extern char __rgeta();
  638.  extern char __rgetsa();
  639.  
  640. /* RTBASICIO.C */
  641.  extern __dhp __rsysin();
  642.  extern __dhp __rsysout();
  643.  extern __dhp __rsyserr();
  644.  
  645. /* ENVIRONMENT.C */
  646.  
  647. /* Basic operations */
  648.  extern double __rabsr();
  649.  extern long __rabsi();
  650.  extern long __rsigni();
  651.  extern long __rsignr();
  652.  extern long __rmod();
  653.  extern long __rrem();
  654.  extern long __rentier();
  655.  extern long __rintrea();
  656. #if __REALASDOUBLE
  657.  extern double __raddepsilon();
  658.  extern double __rsubepsilon();
  659. #else
  660.  extern float __raddepsilon();
  661.  extern float __rsubepsilon();
  662. #endif
  663.  extern long __rlowerbound();
  664.  extern long __rupperbound();
  665.  
  666. /* Power functions */
  667.  extern long __rpowii();
  668.  extern double __rpowri();
  669.  extern double __rpow();
  670.  
  671. /* Text utilities */
  672.  extern char __rchar();
  673.  extern char __risochar();
  674.  extern long __rrank();
  675.  extern long __risorank();
  676.  extern char __rdigit();
  677.  extern char __rletter();
  678.  extern char __rlowten();
  679.  extern char __rdecimalmark();
  680.  
  681. /* Mathematical functions */
  682.  extern double __rsqrt();
  683.  extern double __rsin();
  684.  extern double __rcos();
  685.  extern double __rtan();
  686.  extern double __rarcsin();
  687.  extern double __rarccos();
  688.  extern double __rarctan();
  689.  extern double __rarctan2();
  690.  extern double __rsinh();
  691.  extern double __rcosh();
  692.  extern double __rtanh();
  693.  extern double __rln();
  694.  extern double __rlog10();
  695.  extern double __rexp();
  696.  extern double __rcotan();
  697.  
  698. /* Extremum functions */
  699.  extern void __rmint();
  700.  extern char __rminc();
  701.  extern long __rmini();
  702.  extern double __rminr();
  703.  extern void __rmaxt();
  704.  extern char __rmaxc();
  705.  extern long __rmaxi();
  706.  extern double __rmaxr();
  707.  
  708. /* Environmental enquiries
  709.  extern txtvp __rsimulaid();
  710.  
  711. /* Random drawing */
  712.  extern char __rdraw();
  713.  extern long __rrandint();
  714.  extern double __runiform();
  715.  extern double __rnormal();
  716.  extern double __rnegexp();
  717.  extern long __rpoisson();
  718.  extern double __rerlang();
  719.  extern long __rdiscrete();
  720.  extern double __rlinear();
  721.  extern long __rhistd();
  722.  
  723. /* Calendar and timing utilities */
  724.  extern __txtvp __rdatetime();
  725.  extern double __rcputime();
  726.  extern double __rclocktime();
  727.  
  728. /* RTTEXT.C */
  729.  extern char __rtconstant();
  730.  extern long __rtstart();
  731.  extern long __rtlength();
  732.  extern char __rtmore();
  733.  extern char __rtgetchar();
  734.  extern double __rtgetreal();
  735.  extern long __rtgetfrac();
  736.  extern long __rtgetint();
  737.  extern long __rtputint();
  738.  extern long __rtputfix();
  739.  extern long __rtputreal();
  740.  extern long __rtputfrac();
  741.  extern long __rtpos();
  742.  extern __txtvp __rtmain();
  743.  extern __txtvp __rtsub();
  744.  extern __txtvp __rtstrip();
  745.  extern __txtvp __rcopy();
  746.  extern __txtvp __rblanks();
  747.  extern __txtvp __rconc();
  748.  extern __txtvp __rtextvalassign();
  749.  extern __txtvp __rtextassign();
  750.  extern char __reqrtext();
  751.  extern char __reqrtext();
  752.  extern char __reqtext();
  753.  extern char __rlttext();
  754.  extern char __rletext();
  755.  
  756.  extern void __rtputchar();
  757.  extern void __rtsetpos();
  758.  
  759. /* FILESYSTEM.C */
  760.  
  761.  extern long __rfsize();
  762.  
  763. /* Class file */
  764.  extern __txtvp __rfilename();
  765.  extern char __risopen();
  766.  extern char __rsetaccess();
  767.  
  768. /* File class imagefile */
  769.  extern long __rpos();
  770.  extern char __rmore();
  771.  extern long __rlength();
  772.  
  773. /* Imagefile class infile */
  774.  extern char __riendfile();
  775.  extern char __riopen();
  776.  extern char __riclose();
  777.  extern char __riinrecord();
  778.  extern char __riinchar();
  779.  extern char __rilastitem();
  780.  extern long __riinint();
  781.  extern double __riinreal();
  782.  extern long __riinfrac();
  783.  extern __txtvp __riintext();
  784.  
  785. /* Imagefile class outfile */
  786.  extern char __roopen();
  787.  extern char __roclose();
  788.  
  789. /* Outfile class printfile */
  790.  extern long __rpline();
  791.  extern long __rppage();
  792.  extern char __rpopen();
  793.  extern char __rpclose();
  794.  extern long __rplinesperpage();
  795.  
  796. /* Imagefile class directfile */
  797.  extern long __rdlocation();
  798.  extern char __rdendfile();
  799.  extern char __rdlocked();
  800.  extern char __rdcheckpoint();
  801.  extern char __rdunlock();
  802.  extern long __rdlock();
  803.  extern char __rdopen();
  804.  extern char __rdclose();
  805.  extern long __rdlastloc();
  806.  extern long __rdmaxloc();
  807.  extern char __rddeleteimage();
  808.  
  809. /* File class bytefile */
  810.  
  811.  extern long __rbytesize();
  812.  
  813. /* Bytefile class inbytefile */
  814.  extern long __ribinbyte();
  815.  extern char __ribendfile();
  816.  extern char __ribopen();
  817.  extern char __ribclose();
  818.  
  819. /* Bytefile class outbytefile */
  820.  extern char __robopen();
  821.  extern char __robclose();
  822.  
  823. /* Bytefile class directbytefile */
  824.  extern long __rdblocation();
  825.  extern long __rdbmaxloc();
  826.  extern char __rdblocked();
  827.  extern long __rdblock();
  828.  extern char __rdbunlock();
  829.  extern char __rdbopen();
  830.  extern char __rdbclose();
  831.  extern long __rdblastloc();
  832.  
  833. /* Environment to C */
  834.  extern char *__rcopytexttoc();
  835.  extern char *__raddroffirstchar();
  836.  extern char *__raddroffirstelem();
  837.  extern char **__rcopytextarrtoc();
  838.  extern char *__rcopyarrtoc();
  839.  
  840.